/*
 * =====================================================================================
 *
 *       Filename:  Creature.h
 *
 *    Description:  header of virtual class Creature
 *
 *        Version:  1.0
 *        Created:  01/05/12 02:05:42
 *       Revision:  none
 *       Compiler:  g++
 *
 *         Author:  LittleQ Su (), 98703060@nccu.edu.tw
 *        Company:  National Chengchi University, The Department of Computer Science
 *
 * =====================================================================================
 */
#ifndef __CREATURE_H__
#define __CREATURE_H__
#include "Headers.h"
enum CREATURE_TYPE { GOAT, GRASS, NOONE };

class Creature {
    public:
        Creature(void *world, int x, int y);
        enum CREATURE_TYPE get_identify_word() const;
        int getAge();
        void detectDead();
        void genChild();
        bool getMoved();
        void setMoved(bool);

        virtual void action() = 0;

    protected:
        enum CREATURE_TYPE _id_word;
        int _age;
        int _max_age;
        int _gen_age[2];
        void *_world;
        int x, y;
        bool _moved;
};
#endif
